using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

using DataAccess;
using DataTransferObject;


namespace Business
{
    public enum PMuonSachResult
    {
        OK,
        MAPHIEUMUONERROR,
        MATHEERROR,
        NGAYMUONERROR,
        TIENNOERROR,
        TIENDATCOCERROR,
        NGAYHETHANERROR,
        DAOERROR
    }
   public  class clsPhieuMuonSachBUS
    {
       // Filed
       private clsPMuonSachDAO pmuonsachdao;

       // contructors
       public clsPhieuMuonSachBUS()
       {
           this.pmuonsachdao = new clsPMuonSachDAO();
       }
       #region Methods

       //Lấy tiền đặt cọc của phiếu mượn.
       public long LayTienDatCocCuaPhieuMuon(String MaPhieuMuon)
       {
           return pmuonsachdao.LayTienDatCocCuaPhieuMuon(MaPhieuMuon);
       }

       //Lấy tiền nợ của DKCB thuộc phiếu mượn.
       public long LayTienNoCuaDKCB_PhieuMuon(String DKCB, String MaPhieuMuon)
       {
           return LayTienNoCuaDKCB_PhieuMuon(DKCB, MaPhieuMuon);
       }

       public String TimMaPhieuMuonTheoMaThe_DKCB(String MaThe, String DKCB)
       {
           return pmuonsachdao.TimMaPhieuMuonTheoMaThe_DKCB(MaThe, DKCB);
       }

       //Lấy tiền nợ của tất cả các phiếu độc giả đã và đang mượn.
       public long LayTienNoTatCaPhieuMuonSach(String MaThe)
       {
           return this.pmuonsachdao.LayTienNoTatCaPhieuMuonSach(MaThe);
       }

       public long LayTienNoTrongPhieuMuonSachCuaDocGia(String MaThe, String MaPhieuMuon)
       {
           return pmuonsachdao.LayTienNoTrongPhieuMuonSachCuaDocGia(MaThe, MaPhieuMuon);
       }

       public long LayTienPhatCuaDKCB(String DKCB)
       {
           return pmuonsachdao.LayTienPhatCuaDKCB(DKCB);
       }

       public String TimMaPhieuMuonTheoDKCB(String DKCB)
       {
           return pmuonsachdao.TimMaPhieuMuonTheoDKCB(DKCB);
       }

       public bool CapNhatTienNo(clsPMuonSachDTO PhieuMuonSachDTO)
       {
           return pmuonsachdao.UpdateTienNo(PhieuMuonSachDTO);
       }

       //Lấy số quyển sách mà độc giả đang mượn.
       public int SoQuyenSachDocGiaDangMuon(clsDocGiaDTO DocGiaDTO)
       {
           return LayDanhSachSachDocGiaDangMuon(DocGiaDTO).Rows.Count;
       }

       //Lấy danh sách các quyển sách mà độc giả đang mượn.
       public DataTable LayDanhSachSachDocGiaDangMuon(clsDocGiaDTO obj)
       {
           return pmuonsachdao.LayDanhSachSachDocGiaDangMuon(obj);
       }

       public DataTable LayDanhSachPhieuMuon()
       {
           return this.pmuonsachdao.SelectAll();
       }

       public PMuonSachResult ThemPhieuMuon(clsPMuonSachDTO obj)
       {
           if (!this.pmuonsachdao.Insert(obj))
               return PMuonSachResult.DAOERROR;
           return PMuonSachResult.OK;
       }

       public PMuonSachResult SuaPhieuMuon(clsPMuonSachDTO obj)
       {
           if (!this.pmuonsachdao.Update(obj))
               return PMuonSachResult.DAOERROR;
           return PMuonSachResult.OK;
       }

       public PMuonSachResult XoaPhieuMuon(clsPMuonSachDTO obj)
       {
           if (!this.pmuonsachdao.Delete(obj))
               return PMuonSachResult.DAOERROR;
           return PMuonSachResult.OK;
       }

       public PMuonSachResult SuaNgayTraPhieuMuon(clsPMuonSachDTO obj)
       {
           if (!this.pmuonsachdao.SuaNgayTraSach(obj))
               return PMuonSachResult.DAOERROR;
           return PMuonSachResult.OK;
       }
       #endregion
   }
}
